package wenjun.du.androidart.view

import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.util.Log
import android.view.MotionEvent
import android.widget.RelativeLayout
import kotlin.math.abs

/**
 * 自定义父控件 重写事件拦截相关方法
 *
 * */
class ExInRelativeLayout(
    context: Context,
    attrs: AttributeSet?,
    defStyleAttr: Int,
    defStyleRes: Int
) :
    RelativeLayout(context, attrs, defStyleAttr, defStyleRes) {

    companion object {
        private const val TAG = "ExRelative_ExInButton"
    }

    /**
     * 次构造方法必须调用主构造方法
     *
     * */
    constructor(context: Context) : this(context, null)

    constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)

    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : this(
        context,
        attrs,
        defStyleAttr,
        0
    )

    /**
     * 使用内部拦截法 通过子控件通知父控件是否拦截事件，来控制事件传递
     *  只有在DOWN事件的时候 不拦截事件 其余都拦截事件
     *
     * */
    override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean {
        return ev?.action != MotionEvent.ACTION_DOWN
    }

    @SuppressLint("ClickableViewAccessibility")
    override fun onTouchEvent(event: MotionEvent?): Boolean {
        Log.d(
            TAG,
            "parent onTouchEvent() called with: event = ${ViewUtil.getStringAction(event?.action)}"
        )
        return super.onTouchEvent(event)
    }
}